package com.fa7.trabalho.controller;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import com.fa7.trabalho.dao.MensagemDao;
import com.fa7.trabalho.dao.PerfilDao;
import com.fa7.trabalho.entidades.Mensagem;
import com.fa7.trabalho.entidades.Perfil;

@ManagedBean
public class PerfilBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9085473952403069628L;

	private Perfil perfil;
	
	private List<Mensagem> mensagens;

	@ManagedProperty(name = "perfilDao", value = "#{perfilDao}")
	private PerfilDao perfilDao;

	@ManagedProperty(name = "mensagemDao", value = "#{mensagemDao}")
	private MensagemDao mensagemDao;

	@PostConstruct
	public void init() {
		
		HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance()
                .getExternalContext().getRequest();
		
		perfil = getPerfilDao().findByNome(req.getParameter("nome"));		
		
		carregarMensagens();
	}

	
	public void carregarMensagens(){
		setMensagens(mensagemDao.findByPerfilOrderByDataCriacaoDesc(perfil));
	}

	public MensagemDao getMensagemDao() {
		return mensagemDao;
	}

	public void setMensagemDao(MensagemDao mensagemDao) {
		this.mensagemDao = mensagemDao;
	}

	public List<Mensagem> getMensagens() {
		return mensagens;
	}

	public void setMensagens(List<Mensagem> mensagens) {
		this.mensagens = mensagens;
	}


	public Perfil getPerfil() {
		return perfil;
	}


	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}


	public PerfilDao getPerfilDao() {
		return perfilDao;
	}


	public void setPerfilDao(PerfilDao perfilDao) {
		this.perfilDao = perfilDao;
	}

}
